/**
 * 文档数据结构 - 字符清洗算子功能说明
 * 用于在前端页面悬停时显示详细的功能文档
 */

const DOCS_DATA = {
    // 字符清洗算子文档
    character_cleaner: {
        title: "字符清洗算子",
        description: "提供多种字符清洗功能，用于文本预处理和数据清理",
        parameters: {
            enable_invisible_chars_removal: {
                title: "去除不可见字符",
                description: "移除零宽字符、BOM标记和控制字符，保留制表符、换行符等必要空白字符",
                details: [
                    "移除零宽字符：\\u200B-\\u200F, \\u202A-\\u202E, \\u2060-\\u206F, \\uFEFF",
                    "清理控制字符：\\u0000-\\u0008, \\u000B, \\u000C, \\u000E-\\u001F, \\u007F-\\u009F",
                    "处理BOM标记和不间断空格：\\uFEFF, \\u00A0",
                    "保留制表符、换行符、回车符和普通空格"
                ],
                example: "移除文本中的隐藏控制字符，确保文本显示正常"
            },
            enable_unicode_normalize: {
                title: "Unicode标准化",
                description: "将文本标准化为NFC格式，统一字符编码，解决组合字符显示不一致问题",
                details: [
                    "NFC标准化形式转换，统一字符编码",
                    "解决组合字符显示不一致问题",
                    "确保相同字符的一致性表示"
                ],
                example: "\"café\" (组合字符) → \"café\" (标准化字符)"
            },
            enable_traditional_convert: {
                title: "繁体转简体",
                description: "基于OpenCC的智能繁简转换，支持地区化词汇转换",
                details: [
                    "基于OpenCC的智能繁简转换",
                    "支持地区化词汇转换（港澳台、大陆）",
                    "安全导入机制，依赖库不可用时跳过处理"
                ],
                example: "將繁體中文轉換為简体中文"
            },
            enable_html_removal: {
                title: "HTML标签清理",
                description: "基于BeautifulSoup的安全HTML解析，保留文本内容，移除所有标签和属性",
                details: [
                    "基于BeautifulSoup的安全HTML解析",
                    "保留文本内容，移除所有标签和属性",
                    "处理HTML实体：&lt; &gt; &amp; &quot; &apos; &nbsp; &copy; &reg; &trade;",
                    "BeautifulSoup不可用时使用正则表达式回退方案"
                ],
                example: "<p>Hello <b>World</b></p> → Hello World"
            },
            enable_markdown_removal: {
                title: "Markdown格式清理",
                description: "移除Markdown语法标记，保留纯文本内容",
                details: [
                    "移除Markdown标题标记：# ## ### 等",
                    "清理图片语法：![alt](url) → alt",
                    "清理链接语法：[text](url) → text",
                    "移除代码块标记：```code``` → code",
                    "清理强调语法：**bold** *italic* ~~strikethrough~~",
                    "处理列表标记：- * + 和数字列表",
                    "移除引用标记：> 开头",
                    "移除表格语法和水平分隔线",
                    "清理独立URL链接"
                ],
                example: "**粗体文本** → 粗体文本"
            },
            enable_decorative_symbols_removal: {
                title: "装饰符号删除",
                description: "移除表情符号、装饰性符号和图标字符，保留文本形式的实用符号",
                details: [
                    "表情符号范围：\\U0001F600-\\U0001F64F",
                    "符号和象形文字：\\U0001F300-\\U0001F5FF",
                    "交通和地图符号：\\U0001F680-\\U0001F6FF",
                    "国旗符号：\\U0001F1E0-\\U0001F1FF",
                    "几何形状和音乐符号",
                    "版权符号：©、®",
                    "变体选择符：\\uFE0F",
                    "分类原则：处理具有图片/图标特征的符号"
                ],
                example: "文本内容😀🎉 → 文本内容"
            },
            enable_personal_info_masking: {
                title: "个人信息打码",
                description: "对手机号、邮箱、身份证号等个人敏感信息进行安全打码处理",
                details: [
                    "手机号打码：1[3-9]\\d{9} → 前3位+****+后4位",
                    "邮箱打码：user@domain.com → 首字符+***+@domain.com",
                    "身份证号打码：18位（前6位+********+后4位）"
                ],
                example: "13812345678 → 138****5678"
            },
            enable_bank_card_masking: {
                title: "银行卡号打码",
                description: "支持9种主流银行卡格式的安全打码处理",
                details: [
                    "支持Visa、万事达、银联、美国运通等主流银行卡",
                    "Visa：16位（4开头）、13位（旧版）",
                    "万事达：16位（51-55开头）",
                    "银联：16-19位（62开头）",
                    "安全打码：保留前4位和后4位，中间用星号替代",
                    "适应中文环境，不使用单词边界匹配"
                ],
                example: "6225123456789012 → 6225****9012"
            },
            enable_network_identifiers_masking: {
                title: "网络标识符打码",
                description: "对MAC地址、IP地址、端口等网络标识符进行安全打码",
                details: [
                    "MAC地址：AA:BB:CC:DD:EE:FF格式 → [MAC已打码]",
                    "IP端口组合：IPv4:port、[IPv6]:port → [IP端口已打码]",
                    "子网掩码：CIDR格式 → [子网掩码已打码]",
                    "IPv4地址：严格验证（0-255范围） → [IP已打码]",
                    "IPv6地址：完整、压缩、IPv4映射格式 → [IPv6已打码]",
                    "排除版本号等非IP数字组合"
                ],
                example: "192.168.1.1 → [IP已打码]"
            },
            enable_network_credentials_masking: {
                title: "网络凭证打码",
                description: "对证书序列号、指纹、密码哈希等网络凭证进行安全处理",
                details: [
                    "证书序列号：冒号分隔的十六进制序列 → [证书序列号已打码]",
                    "证书指纹：基于上下文关键词识别",
                    "SHA1（40位）、SHA256（64位）等格式",
                    "密码哈希：MD5、SHA系列、bcrypt格式 → [密码哈希已打码]",
                    "基于上下文关键词（hash/md5/sha）识别",
                    "排除证书指纹等其他十六进制内容"
                ],
                example: "MD5哈希值 → [密码哈希已打码]"
            },
            enable_punctuation_normalize: {
                title: "中英文标点符号转换",
                description: "将英文标点符号转换为中文标点符号，统一文本格式",
                details: [
                    "英文标点转中文：, . ; : ! ? → ，。；：！？",
                    "括号转换：() → （）",
                    "连字符转换：- → —（破折号）",
                    "省略号转换：... → …",
                    "引号智能转换：\"content\" → \"content\""
                ],
                example: "Hello, world! → Hello，world！"
            },
            enable_whitespace_removal: {
                title: "空白字符清理",
                description: "删除所有空白字符，用于文本紧凑化处理",
                details: [
                    "删除空格、制表符、换行符、回车符等所有空白字符",
                    "正则表达式：[ \\t\\n\\r]+",
                    "用于文本紧凑化处理，移除格式化空白"
                ],
                example: "Hello   World\\n → HelloWorld"
            }
        }
    },
    
    // 句子筛选算子文档
    sentence_cleaner: {
        title: "句子筛选算子",
        description: "提供多种句子级别的筛选和去重功能，用于文本质量控制和数据清理",
        parameters: {
            enable_md5_dedup: {
                title: "MD5去重",
                description: "基于MD5哈希值进行文本去重，快速识别完全相同的文本内容",
                details: [
                    "计算每行文本的MD5哈希值",
                    "保留首次出现的文本，删除后续重复项",
                    "适用于大规模数据的快速去重",
                    "对文本内容敏感，空格和标点的差异也会被识别"
                ],
                example: "两行完全相同的文本只保留第一行"
            },
            enable_length_filter: {
                title: "长度过滤",
                description: "根据文本长度范围过滤句子，支持字符数和词数两种计算模式",
                details: [
                    "支持最小长度和最大长度设置",
                    "可选择字符数或词数计算模式",
                    "词数模式基于jieba分词结果",
                    "有效控制文本质量和一致性"
                ],
                example: "过滤掉过短（<10字符）或过长（>500字符）的句子"
            },
            min_length: {
                title: "最小长度",
                description: "设置文本的最小长度阈值，短于此长度的文本将被过滤",
                details: [
                    "默认值：1",
                    "配合长度计算模式使用",
                    "字符模式：统计字符数量",
                    "词数模式：统计分词后的词语数量"
                ],
                example: "设置为1，则少于1个字符/词的文本被过滤"
            },
            max_length: {
                title: "最大长度",
                description: "设置文本的最大长度阈值，超过此长度的文本将被过滤",
                details: [
                    "默认值：1000",
                    "配合长度计算模式使用",
                    "字符模式：统计字符数量",
                    "词数模式：统计分词后的词语数量"
                ],
                example: "设置为1000，则超过1000个字符/词的文本被过滤"
            },
            length_count_mode: {
                title: "长度计算模式",
                description: "选择长度计算的方式：字符数或词数",
                details: [
                    "字符模式：统计文本中的字符数量",
                    "词数模式：基于jieba分词统计词语数量",
                    "词数模式更适合中文文本的语义长度评估",
                    "字符模式更适合严格的字符数量控制"
                ],
                example: "字符模式：'你好世界'=4字符；词数模式：'你好世界'=2词"
            },
            enable_jieba_filter: {
                title: "jieba重复度过滤",
                description: "基于jieba分词的语义重复检测，智能识别近似重复内容",
                details: [
                    "使用jieba分词进行文本分析",
                    "计算重复率：(总词数-唯一词数)/总词数",
                    "识别词汇重复率过高的文本",
                    "有效去除低质量的重复性内容"
                ],
                example: "过滤'今天天气很好很好很好'这类重复词汇过多的文本"
            },
            repetition_threshold: {
                title: "重复率阈值",
                description: "设置jieba重复度过滤的阈值，超过此重复率的文本将被过滤",
                details: [
                    "取值范围：0.0-1.0",
                    "默认值：0.3（30%）",
                    "计算公式：(总词数-唯一词数)/总词数",
                    "阈值越低，过滤越严格"
                ],
                example: "设置为0.3，重复率超过30%的文本被过滤"
            },
            jieba_cut_all: {
                title: "使用全模式分词",
                description: "启用jieba全模式分词，产生更多分词结果，提高召回率",
                details: [
                    "全模式：把句子中所有可能的词语都扫描出来",
                    "精确模式：试图将句子最精确地切开",
                    "全模式召回率更高，但可能产生冗余",
                    "适用于需要更全面词汇覆盖的场景"
                ],
                example: "全模式：'中国科学技术大学' → ['中国','科学','技术','大学','科学技术','技术大学']"
            },
            enable_ngram_filter: {
                title: "N-gram相似度过滤",
                description: "基于N-gram特征的文本相似度检测，使用Jaccard相似度筛选相似文本",
                details: [
                    "基于jieba分词的词级N-gram特征",
                    "使用Jaccard相似度计算文本相似性",
                    "有效识别语义相似但表达不同的文本",
                    "保持数据多样性和独特性"
                ],
                example: "识别'今天天气不错'和'今天天气很好'的高相似度"
            },
            ngram_similarity_threshold: {
                title: "相似度阈值",
                description: "设置N-gram相似度过滤的阈值，超过此相似度的文本将被过滤",
                details: [
                    "取值范围：0.0-1.0",
                    "默认值：0.8（80%）",
                    "基于Jaccard相似度计算",
                    "阈值越高，过滤越严格"
                ],
                example: "设置为0.8，相似度超过80%的文本被过滤"
            },
            ngram_n: {
                title: "N-gram大小",
                description: "设置N-gram中N的大小，影响相似度检测的精确度",
                details: [
                    "取值范围：1-5",
                    "默认值：2（二元组）",
                    "N值越大，检测越精确但召回率降低",
                    "推荐使用2或3获得最佳平衡"
                ],
                example: "N=2：['今天','天气'] → [('今天','天气')]"
            },
            enable_field_filter: {
                title: "字段条件过滤",
                description: "根据指定关键词进行包含或排除过滤，支持多种匹配模式",
                details: [
                    "支持包含模式和排除模式",
                    "可配置大小写敏感性",
                    "支持jieba分词匹配",
                    "灵活的关键词匹配策略"
                ],
                example: "包含模式：保留含有'科技'关键词的文本"
            },
            target_fields: {
                title: "目标关键词",
                description: "设置用于字段条件过滤的关键词列表，用逗号分隔",
                details: [
                    "支持多个关键词，用逗号分隔",
                    "关键词可以是单词或短语",
                    "配合过滤模式和匹配模式使用",
                    "支持中英文关键词混合"
                ],
                example: "环保,人工智能,科技创新"
            },
            field_filter_mode: {
                title: "过滤模式",
                description: "选择关键词过滤的模式：包含或排除",
                details: [
                    "包含模式：保留含有关键词的文本",
                    "排除模式：删除含有关键词的文本",
                    "配合匹配模式实现精确控制",
                    "适用于不同的数据清理需求"
                ],
                example: "包含模式+关键词'教育'：只保留包含教育相关的文本"
            },
            field_match_mode: {
                title: "匹配模式",
                description: "设置关键词匹配的逻辑：任一匹配或全部匹配",
                details: [
                    "任一匹配：匹配任意一个关键词即可",
                    "全部匹配：必须同时匹配所有关键词",
                    "任一匹配召回率高，全部匹配精确度高",
                    "根据业务需求选择合适的匹配策略"
                ],
                example: "任一匹配：含有'科技'或'创新'；全部匹配：同时含有'科技'和'创新'"
            },
            field_case_sensitive: {
                title: "大小写敏感",
                description: "设置英文关键词匹配时是否区分大小写",
                details: [
                    "启用：严格区分英文字母大小写",
                    "禁用：忽略英文字母大小写差异",
                    "仅影响英文字符，中文不受影响",
                    "建议根据数据特点选择"
                ],
                example: "启用时：'AI'和'ai'被视为不同关键词"
            },
            field_use_jieba: {
                title: "使用jieba分词",
                description: "启用jieba分词进行语义匹配，提高中文关键词识别准确率",
                details: [
                    "基于jieba分词结果进行关键词匹配",
                    "提高中文语义匹配的准确性",
                    "避免部分匹配导致的误判",
                    "推荐在处理中文文本时启用"
                ],
                example: "关键词'人工智能'可以匹配'人工智能技术发展'中的完整词汇"
            }
        }
    },
    // 预置工作流文档
    preset_workflows: {
        title: "预置工作流",
        description: "常用工作流模板，快速构建数据处理流程",
        parameters: {
            basic_format_filter: {
                title: "基本格式过滤",
                description: "进行基础的文本清理与统一，提升原始数据的可读性与一致性",
                details: [
                    "去除不可见字符：移除零宽字符、控制字符与BOM标记",
                    "Unicode标准化：统一为NFC格式，消除组合字符差异",
                    "HTML标签清理：解析安全移除标签，仅保留纯文本",
                    "Markdown清理：去除标题、链接、图片、代码块、强调等格式标记"
                ],
                example: "输入包含HTML与Markdown的原始文本 → 输出为标准化的纯文本"
            },
            basic_format_filter_masking: {
                title: "基本格式过滤+打码过滤",
                description: "在基本格式过滤基础上，增加个人与网络敏感信息打码，保障数据隐私",
                details: [
                    "包含基本格式过滤全部步骤",
                    "个人信息打码：手机号、邮箱、身份证号等",
                    "银行卡号打码：保留前4后4，中间打码",
                    "网络标识符打码：IP、端口、MAC、子网掩码等",
                    "网络凭证打码：证书序列号、指纹、密码哈希（MD5/SHA/bcrypt）"
                ],
                example: "文本中的 13812345678 → 138****5678；6225xxxx... → 6225****9012；192.168.1.1 → [IP已打码]"
            },
            basic_format_filter_masking_dedup: {
                title: "格式过滤+打码+句子去重",
                description: "在前两者基础上，进行句子级别质量控制与去重，提升数据唯一性",
                details: [
                    "包含基本格式过滤与打码过滤全部步骤",
                    "MD5去重：删除完全重复的文本行，仅保留首次出现",
                    "长度过滤：按字符/词数设定最小/最大长度阈值",
                    "可选：基于jieba的重复度过滤与N-gram相似度过滤（按需开启）"
                ],
                example: "重复行被去重，过短/过长句子被过滤，最终保留规范化且隐私打码的高质量文本"
            }
        }
    }
};

// 导出文档数据
if (typeof module !== 'undefined' && module.exports) {
    module.exports = DOCS_DATA;
} else if (typeof window !== 'undefined') {
    window.DOCS_DATA = DOCS_DATA;
}